package com.geek.spring.single;

/**
 * @program java-spring
 * @description: 双重检索 : volatile: 对象的创建可能发生指令的重排序，使用 volatile 可以禁止指令的重排序，保证多线程环境内的系统安全
 * @author: chanzhugang
 * @create: 2021/04/18 23:49
 */
public class SingleDemo03 {

    private static volatile SingleDemo03 instance;

    private SingleDemo03() {

    }

    public static SingleDemo03 getInstance() {
        if (instance == null) {
            synchronized (SingleDemo03.class) {
                if (instance == null) {
                    instance = new SingleDemo03();
                }
            }
        }
        return instance;
    }
}